package com.ms.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ms.entity.Volunteer;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Delete;

/**
 * 志愿者数据访问接口 - 使用MyBatis-Plus实现
 * 继承BaseMapper后可直接使用常见的CRUD操作
 */
@Mapper
public interface VolunteerMapper extends BaseMapper<Volunteer> {

    /**
     * 根据用户ID查找志愿者申请记录
     * @param userId 用户ID - 修改：改为 Integer
     * @return 志愿者申请记录
     */
    @Select("SELECT * FROM volunteer WHERE userID = #{userId}")
    Volunteer selectByUserId(@Param("userId") Integer userId);

    /**
     * 根据用户ID删除志愿者申请记录
     * @param userId 用户ID - 修改：改为 Integer
     * @return 删除结果
     */
    @Delete("DELETE FROM volunteer WHERE userID = #{userId}")
    int deleteByUserId(@Param("userId") Integer userId);

    /**
     * 检查用户是否已经申请过志愿者
     * @param userId 用户ID - 修改：改为 Integer
     * @return 是否已申请
     */
    @Select("SELECT COUNT(*) > 0 FROM volunteer WHERE userID = #{userId}")
    boolean existsByUserId(@Param("userId") Integer userId);

    // 删除 selectMaxVolunteerId 方法，因为现在使用自增ID
}